home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / BCCGRX12.ZIP / contrib / bcc2grx / src / rand_tp.c < prev    next >
C/C++ Source or Header  |  1993-04-21  |  805b  |  34 lines

  1. /*
  2.  *  BCC2GRX  -  Interfacing Borland based graphics programs to LIBGRX
  3.  *  Copyright (C) 1993  Hartmut Schirmer
  4.  *
  5.  *  see bccgrx.c for details
  6.  *
  7.  *
  8.  *  This random number generator should be compatible
  9.  *  with the Turbo-Pascal random(..) function
  10.  *
  11.  */
  12.  
  13. #include <p2c/tp_port.h>
  14.  
  15. long RANDSEED_TP;
  16. unsigned short RANDOM_TP(unsigned short range)
  17. {
  18.   RANDSEED_TP = RANDSEED_TP * 134775813L + 1;
  19.   if (range == 0) return 0;
  20.   return (((unsigned long)RANDSEED_TP) >> 16) % range;
  21. }
  22.  
  23. #define TIMER_LOW  ((unsigned short *) 0xE000046C)
  24. #define TIMER_HIGH ((unsigned short *) 0xE000046E)
  25. void RANDZE_TP(void)
  26. {
  27.   RANDSEED_TP = *TIMER_LOW + (*TIMER_HIGH << 16);
  28. }
  29.  
  30. double RANDOM_R_TP(void) {
  31.   RANDOM_TP( 1);
  32.   return (double)((unsigned long) RANDSEED_TP) / 4294967296.0;
  33. }
  34.